package com.tencent.sr.iris.activity.repository.mapper;

import com.tencent.sr.iris.activity.repository.entity.TIrisActivityAwardRecordDO;
import com.tencent.sr.iris.activity.repository.mapper.example.TIrisActivityAwardRecordExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * com.tencent.sr.iris.activity.repository.mapper.TIrisActivityAwardRecordMapper
 *
 * @author xiaojun
 * @since 2023-05-04
 */
@Mapper
public interface TIrisActivityAwardRecordMapper {

    /**
     * 根据example条件查询记录总数
     *
     * @param example 查询参数
     * @return 满足条件的记录总数
     */
    long countByExample(TIrisActivityAwardRecordExample example);

    /**
     * 根据example参数删除记录
     *
     * @param example 执行参数
     * @return 删除记录条数
     */
    int deleteByExample(TIrisActivityAwardRecordExample example);

    /**
     * 根据主键删除记录
     *
     * @param id 主键id
     * @return 删除记录条数
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 插入一条记录
     *
     * @param record param
     * @return 插入记录条数
     */
    int insert(TIrisActivityAwardRecordDO record);

    /**
     * 插入一条记录
     *
     * @param record param
     * @return 插入记录条数
     */
    int insertSelective(TIrisActivityAwardRecordDO record);

    /**
     * 根据example查询记录别表
     *
     * @param example 查询参数
     * @return 查询记录列表
     */
    List<TIrisActivityAwardRecordDO> selectByExample(TIrisActivityAwardRecordExample example);

    /**
     * 分页查询
     *
     * @param example 查询参数
     * @param offset offset
     * @param limit limit
     * @return 查询记录列表
     */
    List<TIrisActivityAwardRecordDO> limitSelectByExample(@Param("example") TIrisActivityAwardRecordExample example,
            @Param("offset") int offset, @Param("limit") int limit);

    /**
     * 根据主键查询记录
     *
     * @param id 主键id
     * @return 查询记录
     */
    TIrisActivityAwardRecordDO selectByPrimaryKey(Long id);

    /**
     * 根据example条件更新记录，record里面为null的字段跳过更新
     *
     * @param record 需要更新的字段
     * @param example 更新条件
     * @return 更新记录条数
     */
    int updateByExampleSelective(@Param("record") TIrisActivityAwardRecordDO record,
            @Param("example") TIrisActivityAwardRecordExample example);

    /**
     * 根据example更新记录，记录会由record里面的字段完全覆盖，包含值null的字段
     *
     * @param record 需要更新的字段
     * @param example 更新条件
     * @return 更新记录条数
     */
    int updateByExample(@Param("record") TIrisActivityAwardRecordDO record,
            @Param("example") TIrisActivityAwardRecordExample example);

    /**
     * 根据主键更新记录，record里面为null的字段跳过更新
     *
     * @param record 需要更新的字段
     * @return 更新记录条数
     */
    int updateByPrimaryKeySelective(TIrisActivityAwardRecordDO record);

    /**
     * 根据主键更新记录，记录会由record里面的字段完全覆盖，包含值为null的字段
     *
     * @param record 需要更新的字段
     * @return 更新记录条数
     */
    int updateByPrimaryKey(TIrisActivityAwardRecordDO record);
}